<?php

require_once '../dlo/EspacoCulturalDLO.php';

class EspacoCulturalController {

    private $cod_espaco;
    private $cod_usuario;
    private $cod_facilidade;
    private $parecer;
    private $area;
    private $bi;
    private $cod_cmdo;
    private $descricao;
    private $email;
    private $cod_estado_espaco;
    private $fonte_recursos;
    private $nome;
    private $cod_om;
    private $cod_rm;
    private $telefone;
    private $cod_tipo;
    private $logradouro;
    private $numero;
    private $cidade;
    private $estado;
    private $cep;
    private $bairro;
    private $complemento;
    private $row_id;
    private $campo_id;
    private $campo_valor;
    private $tipo_listagem;

    function __construct(&$cod_espaco, &$cod_usuario, &$cod_facilidade, &$parecer, &$area, &$bi, &$cod_cmdo, &$descricao, &$email, &$cod_estado_espaco, &$fonte_recursos, &$nome, &$cod_om, &$cod_rm, &$telefone, &$cod_tipo, &$logradouro, &$numero, &$cidade, &$estado, &$cep, &$bairro, &$complemento, &$row_id, &$campo_id, &$campo_valor, &$tipo_listagem) {
        $this->cod_espaco = &$cod_espaco;
        $this->cod_usuario = &$cod_usuario;
        $this->cod_facilidade = &$cod_facilidade;
        $this->parecer = &$parecer;
        $this->area = &$area;
        $this->bi = &$bi;
        $this->cod_cmdo = &$cod_cmdo;
        $this->descricao = &$descricao;
        $this->email = &$email;
        $this->cod_estado_espaco = &$cod_estado_espaco;
        $this->fonte_recursos = &$fonte_recursos;
        $this->nome = &$nome;
        $this->cod_om = &$cod_om;
        $this->cod_rm = &$cod_rm;
        $this->telefone = &$telefone;
        $this->cod_tipo = &$cod_tipo;
        $this->logradouro = &$logradouro;
        $this->numero = &$numero;
        $this->cidade = &$cidade;
        $this->estado = &$estado;
        $this->cep = &$cep;
        $this->bairro = &$bairro;
        $this->complemento = &$complemento;
        $this->row_id = &$row_id;
        $this->campo_id = &$campo_id;
        $this->campo_valor = &$campo_valor;
        $this->tipo_listagem = &$tipo_listagem;
    }

    public function cadastrar() {
        try {
            $dlo = &EspacoCulturalDLO::getInstance();
            $dlo->cadastrar($this->area, $this->bi, $this->cod_cmdo, $this->descricao, $this->email, $this->cod_estado_espaco, $this->fonte_recursos, $this->nome, $this->cod_om, $this->cod_rm, $this->telefone, $this->cod_tipo, $this->logradouro, $this->numero, $this->cidade, $this->estado, $this->cep, $this->bairro, $this->complemento);
        } catch (Exception $e) {
            echo "Exception: " . $e->getMessage();
        }
    }

    public function alterar() {
        try {
            $dlo = &EspacoCulturalDLO::getInstance();
            $dlo->alterar($this->row_id, $this->campo_id, $this->campo_valor);
            echo $this->campo_valor;
        } catch (Exception $e) {
            if ($e->getMessage() != 'no_action') {
                echo "Exception: " . $e->getMessage();
            } else {
                echo $this->campo_valor;
            }
        }
    }

    public function excluir() {
        try {
            $dlo = &EspacoCulturalDLO::getInstance();
            $dlo->excluir($this->cod_espaco);
        } catch (Exception $e) {
            echo "Exception: " . $e->getMessage();
        }
    }

    public function cadastrarFacilidade() {
        try {
            $dlo = &EspacoCulturalDLO::getInstance();
            $dlo->cadastrarFacilidade($this->cod_espaco, $this->cod_facilidade, $this->parecer);
        } catch (Exception $e) {
            echo "Exception: " . $e->getMessage();
        }
    }

    public function alterarFacilidade() {
        try {
            $dlo = &EspacoCulturalDLO::getInstance();
            $dlo->alterarFacilidade($this->cod_espaco, $this->cod_facilidade, $this->parecer);
        } catch (Exception $e) {
            echo "Exception: " . $e->getMessage();
        }
    }

    public function excluirFacilidade() {
        try {
            $dlo = &EspacoCulturalDLO::getInstance();
            $dlo->excluirFacilidade($this->cod_espaco, $this->cod_facilidade);
        } catch (Exception $e) {
            echo "Exception: " . $e->getMessage();
        }
    }

    public function consultar() {
        try {
            $dlo = &EspacoCulturalDLO::getInstance();
            throw new Exception("Ainda não implementado!");
            $row = &$dlo->consultar($this->cod_espaco);
            /* $xml = new XMLWriter();
              $xml->openMemory();
              $xml->startDocument( '1.0' , 'UTF-8' );
              $xml->startElement("localizacao");
              $xml->writeAttribute('lz_codigo', $row['lz_codigo']);
              $xml->writeAttribute("localizacao",$row['localizacao']);
              $xml->writeAttribute("vinculado",$row['vinculado']);
              foreach ($row['usuarios'] as $usuario) {
              $xml->startElement("usuario");
              $xml->writeAttribute('codusuario', $usuario['codusuario']);
              $xml->writeAttribute('us_usuario', $usuario['us_usuario']);
              $xml->endElement();
              }
              $xml->endElement();
              header('Content-type: text/xml');
              print $xml->outputMemory(true); */
        } catch (Exception $e) {
            echo "Exception: " . $e->getMessage();
        }
    }
}

$controller = new EspacoCulturalController($_POST['cod_espaco'], $_POST['cod_usuario'], $_POST['cod_facilidade'], $_POST['parecer'], $_POST['area'], $_POST['bi'], $_POST['cod_cmdo'], $_POST['descricao'], $_POST['email'], $_POST['cod_estado_espaco'], $_POST['fonte_recursos'], $_POST['nome'], $_POST['cod_om'], $_POST['cod_rm'], $_POST['telefone'], $_POST['cod_tipo'], $_POST['logradouro'], $_POST['numero'], $_POST['cidade'], $_POST['estado'], $_POST['cep'], $_POST['bairro'], $_POST['complemento'], $_POST['row_id'], $_POST['campo_id'], $_POST['campo_valor'], $_POST['tipo_listagem']);
if ($_POST['acao'] == 'cadastrar') {
    $controller->cadastrar();
} elseif ($_POST['acao'] == 'alterar') {
    $controller->alterar();
} elseif ($_POST['acao'] == 'excluir') {
    $controller->excluir();
} elseif ($_POST['acao'] == 'consultar') {
    $controller->consultar();
} elseif ($_POST['acao'] == 'listar') {
    $controller->listar();
} elseif ($_POST['acao'] == 'cadastrar_facilidade') {
    $controller->cadastrarFacilidade();
} elseif ($_POST['acao'] == 'alterar_facilidade') {
    $controller->alterarFacilidade();
} elseif ($_POST['acao'] == 'excluir_facilidade') {
    $controller->excluirFacilidade();
}
?>
